all: compiler interpreteur

compiler: clear analex.o compiler.o syntax.o error.o symbole.o type.o generateur.o pile.o pcode.o func.o
	gcc compiler.o analex.o syntax.o error.o symbole.o type.o generateur.o pile.o pcode.o func.o -ll -o compiler

analex.o: lex.yy.c
	gcc -c -I. lex.yy.c -o analex.o

func.o: func.c
	gcc -c -I. func.c

compiler.o: compiler.c
	gcc -c -I. compiler.c

syntax.o: syntax.c
	gcc -c -I. syntax.c

error.o: error.c
	gcc -c -I. error.c

symbole.o: symbole.c
	gcc -c -I. symbole.c

type.o: type.c
	gcc -c -I. type.c

lex.yy.c : analex.l
	lex analex.l

generateur.o: generateur.c
	gcc -c -I. generateur.c	

pile.o: pile.c
	gcc -c -I. pile.c

pcode.o: pcode.c
	gcc -c -I. pcode.c

clear: 
	clear

interpreteur: clear interpreteur.o error.o type.o pile.o pcode.o symbole.o execOp.o pa.o
		gcc interpreteur.o error.o symbole.o type.o pile.o pcode.o execOp.o pa.o -ll -o interpreteur

interpreteur.o: interpreteur.c
		gcc -c -I. interpreteur.c

execOp.o:execOp.c
	gcc -c -I. execOp.c

pa.o: pa.c
	gcc -c -I. pa.c
